<?php
/**
 *
 *----------Dragon be here!----------/
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃代码无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 * Created by PhpStorm.
 * User: huangxh
 * Date: 2018/1/5 0005
 * Time: 上午 11:20
 */
namespace models\Mysql;

use Doctrine\Common\Cache\RedisCache;
use Yaf\Registry;
use Yaf\Exception;
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;

class db
{
//    private static $__master_config = [];

//    private static $__slave_config = [];

    private static $__config = [];

    protected $_sql = '';

    protected $_table_name = '';

    protected $_condition = [];

    protected $_offset = 0;

    protected $_limit = 10;

    public function setTableName($table_name){
        $this->_table_name = $table_name;
        return $this;
    }

    public function setConfig($type = 'master'){
        self::$__config = [
            'dbname' => Registry::get('config')['db'][$type]['dbname'],
            'user' => Registry::get('config')['db'][$type]['user'],
            'password' => Registry::get('config')['db'][$type]['password'],
            'host' => Registry::get('config')['db'][$type]['host'],
            'port' => Registry::get("config")['db'][$type]['port'],
            'driver' => 'pdo_mysql',
            'charset' => 'utf8'
        ];
    }

    /**
     * 初始化数据库连接
     * @param string $type
     * @return \Doctrine\DBAL\Connection
     * @throws \Doctrine\DBAL\DBALException
     */
    public function initDb($type = 'master'){

        self::setConfig($type);

        $config = new Configuration();

        return DriverManager::getConnection(self::$__config,$config);
    }

}